#include "Comm.hpp"
#include<unistd.h>

int main()
{
    //1.创建key
    key_t k = ::ftok(gpath.c_str(), gprojId);
    if(k < 0)
    {
        std::cerr << "ftok error" << std::endl;
        return 1;
    }
    std::cout << "k : " << ToHex(k) << std::endl;

    //2.创建共享内存&&获取
    //获取一个共享内存, 如果没有就创建, 如果有内容就返回-1
    //换句话说, 只能创建一个新的进程    
    int shmid = ::shmget(k, gshmsize, IPC_CREAT | IPC_CREAT);
    if(shmid < 0)
    {
        std::cerr << "shmget error " << std::endl;
        return 2;
    }

    std::cout << "shmid: " << shmid << std::endl;

    sleep(10);

    //删除共享内存
    shmctl(shmid, IPC_RMID, nullptr);
    return 0;
}